// npm i -S vue-router@3
import Vue from 'vue'
import VueRouter from 'vue-router'
/* import ZuiXin from '../views/ZuiXin.vue'
import QuanNeiReDian from '../views/QuanNeiReDian.vue'
import ChuangXin from '../views/ChuangXin.vue'
import Register from '../views/Register.vue'
import Login from '../views/Login.vue'
import QuanNeiDetail from '../views/quanneiredian/QuanNeiDetail.vue' */

// 路由懒加载  通过import（）加载的模块会被单独打包（代码分割  code split） 
const ZuiXin = ()=> import('../views/ZuiXin.vue')
const QuanNeiReDian = ()=>import('../views/QuanNeiReDian.vue');
const ChuangXin = ()=>import('../views/ChuangXin.vue');
const Register = ()=>import('../views/Register.vue');
const Login = ()=>import('../views/Login.vue');
const QuanNeiDetail = ()=>import('../views/quanneiredian/QuanNeiDetail.vue');
const Test = ()=>import('../views/Test.vue');
const Test2 = ()=>import('../views/Test2.vue');

Vue.use(VueRouter)
let router = new VueRouter({
    mode:"hash",
    routes:[
        {
            path:'/zuixin',
            component:ZuiXin,
            meta:{
                show:true
            }
        },
        {
            path:'/quanneiredian',
            component:QuanNeiReDian,
            name:'quanneiredian',
            meta:{
                show:true
            },
            children:[
                {
                    // params传值   路径上需要有占位符
                    // path:'/quanneiredian/quanneidetail/:index',
                    path:'/quanneiredian/quanneidetail',
                    component:QuanNeiDetail,
                    name:'quanneidetail'
                }
            ]
        },{
            path:'/chuangxin',
            component:ChuangXin,
            name:'chuangxin',
            meta:{
                show:true
            }
        },
        {
            path:'/register',
            component:Register
        },{
            path:'/login',
            component:Login
        },{
            path:'/',
            redirect:'/zuixin'
        }
    ]
})

console.dir(router);



/* 
app 
进入app 能看见首页 最新
跳转到圈内热点或者创新   去登录页面进行登录，不登录不能进入圈内热点和创新
 
页面跳转是通过路由跳转进行跳
进入圈内热点和创新时进行拦截
判断是否登录，当登录了，能进入，当没有登录，跳转到登录页面


路由守卫 （导航守卫）：分为两种全局守卫  组件守卫

全局守卫在路由器上进行操作

全局前置守卫 router.beforeEach 在准备跳转到某个路由组件前做些操作


*/
//路由全局守卫的前置守卫，开发中使用比较多
/* const paths = ['/quanneiredian','/chuangxin'];
router.beforeEach((to,from,next)=>{
    console.log(to);//to跳转到哪里去   目标路由 to.path
    console.log(from);//from指的是从哪个路由开始跳转  起始路由
    // next();//函数  执行跳转到下一个路由的回调函数
    if(paths.indexOf(to.path)>=0){
        // 目标路由在paths数组中,就让其进入登录页面进行登录
        // next('/login'); //next()传入路径，跳转到当前路径
        // next()  默认跳转到哪里
        // next(false);//不执行，在当前路由中断

    }else{
        // 如果不在 放行
        next();
    }
}) */

// 添加一个路由
/* router.addRoute({
    path:'/test',
    component:Test
}) */
// 添加多个
router.addRoutes([
    {
        path:'/test',
        component:Test
    }, {
        path:'/test2',
        component:Test2
    }
])


// 全局守卫中的后置守卫
/* router.afterEach((to,from)=>{
    console.log(to);//to  目标路由
    console.log(from);//from  起始路由
}) */

export default router